<?
class calendar 
{
	var $cIdCalendar = "calendario";
	var $nqCol = 7;
	var $nWidth = 400;
	var $nHeight = 400;
	var $cFecha;
	var $aActividades1 = array ( );
	var $aActividades2 = array ( );
	var $dSpecialDay ;
	var $nDiaSemana ;
	var $nMaxDias ;
	var $cFechaDesde ;
	var $cFechaHasta ;
	var $cAnoMes ;
	var $cMesActual ;
	var $cAnoActual ;
	var $dMesAnt ;
	var $dMesProx ;
	var $nqDias ;
	
	function calendar ( $cIdCalendar , $nWidth = 400, $nHeight = 400) 
	{
		$oFechaDesde = new dateObject( $this->cFecha );
		$this->cFechaDesde = $oFechaDesde->getValue( 'yyyy-mm-dd' )."<br>";
		$this->nDiaSemana = $oFechaDesde->getWeekDay() - 1;
		$this->nMaxDias = $oFechaDesde->getMaxMonth();
		$this->cFechaHasta = $oFechaDesde->getValue( 'yyyy-mm-'.$this->nMaxDias );
		$this->cAnoMes = $oFechaDesde->getValue( 'yyyy-mm-' );

		$this->cMesActual = $oFechaDesde->getMonthName();
		$this->cAnoActual = $oFechaDesde->getYear();
		$this->nqDias = $oFechaDesde->dateDiff("d", Date("Y-m-d") );

		$oFecha = new dateObject( $this->cFechaDesde );
		$oFecha->add('m', -1);
		$this->dMesAnt = $oFecha->getValue('yyyy-mm-dd');
		$oFecha->add('m', 2);
		$this->dMesProx = $oFecha->getValue('yyyy-mm-dd');

		$this->cIdCalendar = $cIdCalendar;
		$this->nWidth = $nWidth;
		$this->nHeight = $nHeight;
	}
	function setDate ( $dDate ) 
	{
		$this->cFecha  = $dDate ;
	}
	function setWidth ( $nWidth ) 
	{
		$this->nWidth  = $nWidth ;
	}
	function setHeight( $nHeight ) 
	{
		$this->nHeight  = $nHeight ;
	}
	function setActividades1( $aActividades1 )
	{
		$this->aActividades1 = $aActividades1; 
	}
	function setActividades2( $aActividades2 )
	{
		$this->aActividades2= $aActividades2; 
	}	
	function setSpecialDay( $dDate )
	{
		$this->dSpecialDay = $dDate;
	}
	
	function make()
	{
		$this->calendar();
		
		
		$cReturn = "<div>
						<div class='mes'>". $this->cMesActual ."</div>
						<div class='anio'>". $this->cAnoActual ."</div>
						<div style='margin-top: 10px; height: 140px; border: 1px solid #FFF'>
							<table summary='calendario'>
									<thead>
										<tr><th>L</th><th>M</th><th>M</th><th>J</th><th>V</th><th>S</th><th>D</th></tr>
									</thead>
								<tbody>
									<tr>";
									
										// Casilleros vacios
										for ( $nIndex = 0; $nIndex < $this->nDiaSemana; $nIndex ++ ) $cReturn.= "<td class='vacia'>&nbsp;</td>";
										
										$nqDias = $this->nqDias;
										for( $nIndex = $this->nDiaSemana , $nDia = 1; $nDia <= $this->nMaxDias; $nDia++, $nqDias-- )
											{
												if ( $nDia < 10 ) $nDia = "0".$nDia; // Corrige los dias para que aparezca el 0 delante
												$dFeAct = $this->cAnoMes.$nDia;
												if ( ($nIndex++ % $this->nqCol) == 0 && $nDia > 1) $cReturn.= "<tr>"; // Inicio de linea
												
												// Pone el estilo de la celda dependiendo si es ayer, hoy o jueves
												$cClass = ( $nqDias == 0 ) ? "hoy": ( $nqDias > 0 ? "pasado" : "" );
												$cClass = ( $dFeAct == $this->dSpecialDay )? "dia_especial" : $cClass;
												$cReturn.= ( $cClass )? "<td class='$cClass'>" : "<td>";
												if ( in_array( $dFeAct, $this->aActividades1 ) )
													$cReturn.= "<a href='javascript://void(0);' onclick=\"send('?ac=agenda&amp;rf=action&amp;fecha=$dFeAct', refreshElement, 'agenda'); return false();\"><b>" . $nDia. "</b></a>";
												else
													$cReturn.= $nDia;
												$cReturn.= "</td>";
												
												if ( ($nIndex % $this->nqCol) == 0 && $nDia > 1) $cReturn.= "</tr>"; // Fin de linea
											}
										
										// Casilleros vacios
										if ( ($nIndex % $this->nqCol) != 0 )
												while ( ($nIndex++ % $this->nqCol) != 0 ) $cReturn.= "<td class='vacia'>&nbsp;</td>";
									
		$cReturn.= "				</tr>
								</tbody>
							</table>
						</div>
						<div class='flechitas'>
							<div style='clear: none; overflow: auto; width: 20px;'>
								<div style='float: left' ><a href=\"javascript://void(0);\" onclick=\"send('?ac=calendario&amp;rf=action&amp;cFecha=". $this->dMesAnt ."', refreshElement, 'calendario');\" ><img src='imagenes/fle_izq.gif' width='7' height='8' style='border: none' alt='<' /></a></div>
								<div style='float: right' ><a href=\"javascript://void(0);\" onclick=\"send('?ac=calendario&amp;rf=action&amp;cFecha=". $this->dMesProx ."', refreshElement, 'calendario');\" ><img src='imagenes/fle_der.gif' width='7' height='8' style='border: none' alt='>' /></a></div>
							</div>
						</div>
					</div>";
		
		return $cReturn ;
	}
}

?>